//构造函数模式
function create1() {
  this.x = 1
  this.y = 2
}
let t = new create1() //通过new方法实例化一个对象

//工厂模式
var name = 1
function create2() {
  let object = {     //工厂模式就是在一个函数内部返回一个对象 批量生产
    name: 'jack',
    speak: function () {
      console.log(this.name)
    }
  }
  return object
}
let s = create2()

//模块模式  常用闭包的形式实现
let e = function () {
  let name = "Yawee"
  let call = function () {
    console.log(name)
  }
  return {
    name: name,
    call: call
  }
}()

//单例模式 只产生一个类的唯一实例
function createPeople() {
  let name
  return function (userName) {
      return name || (name = userName)
  }
}
let single = createPeople()
//还有发布订阅模式

//混合模式，即继承方法中的最后一种形式
